package com.ruoyi.procured.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.OrdersProduct;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 申请预付款对象 tb_request_advance
 * 
 * @author ruoyi
 * @date 2023-11-22
 */
public class RequestAdvance extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 申请预付款id */
    private Long requestId;

    /** 预付金额 */
    @Excel(name = "预付金额")
    private BigDecimal requestAmount;

    /** 申请金额 */
    @Excel(name = "申请金额")
    private BigDecimal amountRequested;

    /** 实付款记录 */
    private String requestRecording;

    /** 付款周期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "付款周期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentDate;

    /** 备注 */
    @Excel(name = "备注")
    private String requestRemark;

    /** 关联采购订单表(tb_procured_orders) */
    @Excel(name = "关联采购订单表(tb_procured_orders)")
    private Long ordersId;

    /** 付款类型 */
    @Excel(name = "付款类型")
    private String paymentType;

    /** 商品编号 （从100001开始递增的编码） */
    @Excel(name = "商品编号 ", readConverterExp = "从=100001开始递增的编码")
    private String proNo;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 产品价格 */
    @Excel(name = "产品价格")
    private BigDecimal productPrice;

    /** 付款状态 */
    @Excel(name = "付款状态")
    private String paymentStatus;

    /** 申请人 */
    @Excel(name = "申请人")
    private String applicant;

    /** 申请日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applicationDate;

    /** 删除状态 0存在1删除 */
    private String deleteStatus;

    /** 采购订单号 */
    private String ordersNumber;

    /** 最大可申请多少钱 */
    private BigDecimal totalAmountDue;

    /** 加钱 */
    private BigDecimal addMoney;

    /** 减钱 */
    private BigDecimal cutMoney;

    /** 取消申请状态 */
    private String cancelStatus;

    /** 商品编号 */
    private Long productId;

    /** 商品集合 */
    private List<OrdersProduct> ordersProductListQuash;

    public List<OrdersProduct> getOrdersProductListQuash() {
        return ordersProductListQuash;
    }

    public void setOrdersProductListQuash(List<OrdersProduct> ordersProductListQuash) {
        this.ordersProductListQuash = ordersProductListQuash;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getCancelStatus() {
        return cancelStatus;
    }

    public void setCancelStatus(String cancelStatus) {
        this.cancelStatus = cancelStatus;
    }

    public BigDecimal getAddMoney() {
        return addMoney;
    }

    public void setAddMoney(BigDecimal addMoney) {
        this.addMoney = addMoney;
    }

    public BigDecimal getCutMoney() {
        return cutMoney;
    }

    public void setCutMoney(BigDecimal cutMoney) {
        this.cutMoney = cutMoney;
    }

    public BigDecimal getTotalAmountDue() {
        return totalAmountDue;
    }

    public void setTotalAmountDue(BigDecimal totalAmountDue) {
        this.totalAmountDue = totalAmountDue;
    }

    public String getOrdersNumber() {
        return ordersNumber;
    }

    public void setOrdersNumber(String ordersNumber) {
        this.ordersNumber = ordersNumber;
    }

    public void setRequestId(Long requestId)
    {
        this.requestId = requestId;
    }

    public Long getRequestId() 
    {
        return requestId;
    }
    public void setRequestAmount(BigDecimal requestAmount) 
    {
        this.requestAmount = requestAmount;
    }

    public BigDecimal getRequestAmount() 
    {
        return requestAmount;
    }
    public void setPaymentDate(Date paymentDate) 
    {
        this.paymentDate = paymentDate;
    }

    public Date getPaymentDate() 
    {
        return paymentDate;
    }
    public void setRequestRemark(String requestRemark) 
    {
        this.requestRemark = requestRemark;
    }

    public String getRequestRemark() 
    {
        return requestRemark;
    }
    public void setOrdersId(Long ordersId) 
    {
        this.ordersId = ordersId;
    }

    public Long getOrdersId() 
    {
        return ordersId;
    }
    public void setPaymentType(String paymentType) 
    {
        this.paymentType = paymentType;
    }

    public String getPaymentType() 
    {
        return paymentType;
    }
    public void setProNo(String proNo) 
    {
        this.proNo = proNo;
    }

    public String getProNo() 
    {
        return proNo;
    }
    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }
    public void setProductPrice(BigDecimal productPrice) 
    {
        this.productPrice = productPrice;
    }

    public BigDecimal getProductPrice() 
    {
        return productPrice;
    }
    public void setPaymentStatus(String paymentStatus) 
    {
        this.paymentStatus = paymentStatus;
    }

    public String getPaymentStatus() 
    {
        return paymentStatus;
    }
    public void setApplicant(String applicant) 
    {
        this.applicant = applicant;
    }

    public String getApplicant() 
    {
        return applicant;
    }
    public void setApplicationDate(Date applicationDate) 
    {
        this.applicationDate = applicationDate;
    }

    public Date getApplicationDate() 
    {
        return applicationDate;
    }
    public void setDeleteStatus(String deleteStatus) 
    {
        this.deleteStatus = deleteStatus;
    }

    public String getDeleteStatus() 
    {
        return deleteStatus;
    }

    public BigDecimal getAmountRequested() {
        return amountRequested;
    }

    public void setAmountRequested(BigDecimal amountRequested) {
        this.amountRequested = amountRequested;
    }

    public String getRequestRecording() {
        return requestRecording;
    }

    public void setRequestRecording(String requestRecording) {
        this.requestRecording = requestRecording;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("requestId", getRequestId())
            .append("requestAmount", getRequestAmount())
            .append("amountRequested",getAmountRequested())
            .append("paymentDate", getPaymentDate())
            .append("requestRemark", getRequestRemark())
            .append("ordersId", getOrdersId())
            .append("paymentType", getPaymentType())
            .append("proNo", getProNo())
            .append("productName", getProductName())
            .append("productPrice", getProductPrice())
            .append("paymentStatus", getPaymentStatus())
            .append("applicant", getApplicant())
            .append("applicationDate", getApplicationDate())
            .append("deleteStatus", getDeleteStatus())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
